package vip.gadfly.tiktok.open.bean.check;


import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.relational.core.sql.In;
import vip.gadfly.tiktok.open.common.TtOpBaseResult;

import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class TtOpCheckResult extends TtOpBaseResult {


    @JSONField(name = "description")
    @JsonAlias("description")
    @JsonProperty("description")
    @SerializedName("description")
    private String description;

    @JSONField(name = "error_code")
    @JsonAlias("error_code")
    @JsonProperty("error_code")
    @SerializedName("error_code")
    private Integer errorCode;

    @JSONField(name = "verify_results")
    @JsonAlias("verify_results")
    @JsonProperty("verify_results")
    @SerializedName("verify_results")
    private List<VerifyResults> verifyResults;

    @Data
    public static class VerifyResults
    {
        @JSONField(name = "result")
        @JsonAlias("result")
        @JsonProperty("result")
        @SerializedName("result")
        private Integer result;

        @JSONField(name = "msg")
        @JsonAlias("msg")
        @JsonProperty("msg")
        @SerializedName("msg")
        private String msg;

        @JSONField(name = "code")
        @JsonAlias("code")
        @JsonProperty("code")
        @SerializedName("code")
        private String code;

        @JSONField(name = "order_id")
        @JsonAlias("order_id")
        @JsonProperty("order_id")
        @SerializedName("order_id")
        private String orderId;

        @JSONField(name = "verify_id")
        @JsonAlias("verify_id")
        @JsonProperty("verify_id")
        @SerializedName("verify_id")
        private String verifyId;

        @JSONField(name = "certificate_id")
        @JsonAlias("certificate_id")
        @JsonProperty("certificate_id")
        @SerializedName("certificate_id")
        private String certificateId;

        @JSONField(name = "origin_code")
        @JsonAlias("origin_code")
        @JsonProperty("origin_code")
        @SerializedName("origin_code")
        private String originCode;

        @JSONField(name = "account_id")
        @JsonAlias("account_id")
        @JsonProperty("account_id")
        @SerializedName("account_id")
        private String accountId;

        @JSONField(name = "verify_amount_info")
        @JsonAlias("verify_amount_info")
        @JsonProperty("verify_amount_info")
        @SerializedName("verify_amount_info")
        private VerifyAmountInfo verifyAmountInfo;
    }

    @Data
    public static class VerifyAmountInfo
    {
        //对应核销序号的金额明细
        @JSONField(name = "times_card_serial_amount")
        @JsonAlias("times_card_serial_amount")
        @JsonProperty("times_card_serial_amount")
        @SerializedName("times_card_serial_amount")
        private TimesCardSerialAmount timesCardSerialAmount;

        @JSONField(name = "time_card_amount")
        @JsonAlias("time_card_amount")
        @JsonProperty("time_card_amount")
        @SerializedName("time_card_amount")
        private TimeCardAmount timeCardAmount;

    }

    @Data
    public static class TimesCardSerialAmount
    {
        @JSONField(name = "amount")
        @JsonAlias("amount")
        @JsonProperty("amount")
        @SerializedName("amount")
        private TtOpPrepareResult.Amount amount;

        @SerializedName("serial_numb")
        private Integer serialNumb;

    }

    @Data
    public static class TimeCardAmount
    {
        @JSONField(name = "amount")
        @JsonAlias("amount")
        @JsonProperty("amount")
        @SerializedName("amount")
        private Integer amount;

    }
}
